package com.tbb.app.common.service;


import com.tbb.app.common.entity.UserInfo;

/**
 * @author LiuSenLin
 * @date 2020/1/16
 */
public interface CurrentLoginUserService {

    /**
     * 获取用户登录信息
     *
     * @return
     */
    UserInfo getUserInfo();

    /**
     * 设置当前线程登录信息
     *
     * @param info
     */
    void setUserInfo(UserInfo info);

    /**
     * 获取当前用户id
     */
    String getUserId();

    /**
     * 获取当前用户姓名
     */
    String getAccount();

    /**
     * 获取当前用户令牌
     *
     * @return
     */
    String getAccessToken();

    /**
     * 设置当前线程令牌
     *
     * @param accessToken
     */
    void setAccessToken(String accessToken);

    /**
     * 获取用户登录信息
     *
     * @param throwException true表示为null时抛异常
     */
    UserInfo getUserInfo(boolean throwException);

    /**
     * 获取当前用户id
     *
     * @param throwException true表示为null或""时抛异常
     */
    String getUserId(boolean throwException);

    /**
     * 获取当前用户姓名
     *
     * @param throwException true表示为null或""时抛异常
     */
    String getAccount(boolean throwException);

    /**
     * 获取当前用户令牌
     *
     * @param throwException true表示为null或""时抛异常
     * @return
     */
    String getAccessToken(boolean throwException);

    /**
     * 删除当前线程登录信息
     */
    void removeUserInfo();

}
